ASP.NET MVC - .NET Framework Part-4 Global.asax file

 Global.asax फ़ाइल

Global.asax फ़ाइल ASP टेक्नोलॉजी की शुरुआत से ही मौजूद है। Classic ASP में Global फ़ाइल का एक्सटेंशन .asa था और ASP.NET टेक्नोलॉजी के आने के साथ, Global.asax फ़ाइल को .asax एक्सटेंशन दिया गया। ASP.NET MVC में भी Global.asax फ़ाइल मिलती है। 

यह फ़ाइल एप्लिकेशन की सेटिंग में बहुत महत्वपूर्ण भूमिका निभाती है। 'Global' नाम से ही पता चलता है कि Global.asax फ़ाइल में दिया गया कोड एप्लिकेशन को ग्लोबल लेवल पर प्रभावित करता है। उदाहरण के लिए, एप्लिकेशन की रूटिंग और अन्य कॉन्फ़िगरेशन सेटिंग्स इसी फ़ाइल में दी जाती हैं। जब एप्लिकेशन शुरू होता है, तो एप्लिकेशन-लेवल इवेंट होता है। यह इवेंट Global.asax फ़ाइल के अंदर लागू (implement) किया जाता है। Application_Start() मेथड में कई मेथड होते हैं जिन्हें एप्लिकेशन के कॉन्फ़िगरेशन को ग्लोबल लेवल पर सेट करने के लिए कॉल किया जाता है। उदाहरण के लिए, इसमें फ़िल्टरिंग, रूटिंग, बंडलिंग आदि के लिए सेटिंग्स होती हैं।

जैसा कि मैंने बताया, जब एप्लिकेशन शुरू होता है तो Application_Start() मेथड कॉल होता है जो Global.asax फ़ाइल के अंदर होता है। इसी तरह, जब एप्लिकेशन बंद होता है तो Application_End इवेंट run होता है। इसी तरह, किसी एरर की स्थिति में, Application_Erro इवेंट run होता है। डेवलपर्स इवेंट को हैंडल करने के लिए मेथड के अंदर ज़रूरी कोड लिख सकते हैं।

Global.asax फ़ाइल Classic ASP के शुरुआती समय से है और यह अभी भी ASP.NET MVC में मौजूद है। इससे साबित होता है कि यह फ़ाइल बहुत महत्वपूर्ण है। जब एक डेवलपर के तौर पर हम कोई ग्लोबल कॉन्फ़िगरेशन करना चाहते हैं, तो ज़्यादातर मामलों में हम इसी फ़ाइल का इस्तेमाल करते हैं। सामान्य कामकाज के लिए डिफ़ॉल्ट सेटिंग्स ही काफ़ी होती हैं।

जब एप्लीकेशन शुरू होती है, तो Global.asax फ़ाइल, जिसमें Application_Start() मेथड होता है, उसे कॉल किया जाता है। Application Start एक इवेंट हैंडलर मेथड है जिसमें यह कोड होता है कि एप्लिकेशन Start होने पर क्या करना चाहिए; इस मेथड या इवेंट हैंडलर में RouteConfig, BundleConfig, FilterConfig आदि जैसे अलग-अलग मेथड होते हैं।

using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
namespace WebApplication
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }
}

इस मेथड में कई अन्य मेथड्स होते हैं जिन्हें एक-एक करके कॉल किया जाता है। उदाहरण के लिए, रूट रजिस्टर करने, बंडल करने या फ़िल्टर करने के लिए आदि । इसका मतलब है कि जब एप्लीकेशन शुरू होती है, तो MVC एप्लीकेशन की रूटिंग, बंडलिंग, फ़िल्टरिंग और अन्य कॉन्फ़िगरेशन होती हैं, और सही कंट्रोलर मिलना इन्हीं कामों में से एक है जो RouteConfig की वजह से होता है। 

Global.asax में कई क्लासेस को रजिस्टर करने के लिए मेथड्स होते हैं। जब एप्लीकेशन शुरू होती है, तो धीरे-धीरे रूटिंग टेबल में एक-एक करके रूट्स जुड़ते जाते हैं।


NextASP.NET MVC - .NET Framework Part-5 Controllers folder

टिप्पणियाँ

इस ब्लॉग से लोकप्रिय पोस्ट

Differences between in-process and out-of-process hosting models

Web Fundamental Concepts in Hindi for Beginners - FAQs with their Answers Part-1

Introduction to ASP.NET Core and Web Frameworks